﻿/**
 * Create in 2012-1-24.
 */
package kit4j.generator.keyless;


/**
 * 随机生成String类型字母数字字符组成的字符串生成器。
 * 
 * @author MiniKnife
 *
 */
public class RandomAlnumStringKeylessGenerator implements IKeylessGenerator<String> {

	/**
	 * 默认的生成的字符串长度，值为4。
	 */
	public static final int DEFAULT_LENGTH = 4;
	
	/**
	 * 随机字母生成器。
	 */
	private RandomAlnumKeylessGenerator rand;
	
	/**
	 * 生成的字符串的长度。
	 */
	private int length;
	
	/**
	 * 创建一个限定字符串长度为DEFAULT_LENGTH的字母数字字符串随机生成器。
	 */
	public RandomAlnumStringKeylessGenerator() {
		this(DEFAULT_LENGTH);
	}
	
	/**
	 * 创建一个限定字符串长度的字母数字字符串随机生成器。
	 * @param length 字符串长度
	 */
	public RandomAlnumStringKeylessGenerator(int length) {
		this.rand = new RandomAlnumKeylessGenerator();
		this.length = length;
	}

	/**
	 * @see kit4j.generator.keyless.IKeylessGenerator#next()
	 */
	@Override
	public String next() {
		char[] buf = new char[length];
		
		for(int i = 0; i < length; ++i) {
			buf[i] = rand.next();
		}
		
		return new String(buf);
	}

	public int getLength() {
		return length;
	}

	/**
	 * 设置生成的字符串的长度。
	 * @param length 长度
	 */
	public void setLength(int length) {
		this.length = length;
	}
	
}
